/**
 * @properties={typeid:35,uuid:"1F83DA6A-13F2-4329-9837-0C63CC6462E6",variableType:93}
 */
var fFechaDesde = null;

/**
 * @properties={typeid:35,uuid:"C5CAAEBA-6694-4A93-8437-2EC39C937D15",variableType:93}
 */
var fFechaHasta = null;

/**
 * @properties={typeid:35,uuid:"2581DC67-EDC7-4B9B-9C20-1C502C7F1568",variableType:4}
 */
var fPlanDesde = null;

/**
 * @properties={typeid:35,uuid:"70347A66-12CB-4BA7-8CB9-559C3C20A4A8",variableType:4}
 */
var fPlanHasta = null;

/**
 *
 * @properties={typeid:24,uuid:"5A4CAE17-F7A9-4F13-B4B0-8784AE009D9B"}
 */
function seguir()
{
	history.removeForm('mayor_cons_2')
	solutionModel.removeForm('mayor_cons_2')
	if ((fFechaDesde != null) && (fFechaHasta != null) && (fPlanDesde != null) && (fPlanHasta != null))
	{
		var ds = databaseManager.createEmptyDataSet( 0,  new Array('plan_id','tipo_id','fecha','nro_asiento','concepto','importe_debe','importe_haber','saldo_deudor','saldo_acreedor'))
		var tipos = new Array (JSColumn.INTEGER,JSColumn.INTEGER,JSColumn.DATETIME,JSColumn.INTEGER,JSColumn.TEXT,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER)
		
		var Searchdate = new Date()
		
		Searchdate = utils.dateFormat(fFechaDesde,'dd-MM-yyyy')+'...'+utils.dateFormat(fFechaHasta,'dd-MM-yyyy')

	
		var fs = databaseManager.getFoundSet('infocom','asientos_cons')
		fs.loadAllRecords()
		fs.find()
		fs.asientos_cons_to_asiento_cons_cab.fecha = '#'+Searchdate +'|dd-MM-yyyy'
		fs.codigo_format = fPlanDesde + '...' + fPlanHasta
		var cant = fs.search()
		if (cant == 0)
			globals.gDialog('Error','No se encontraron movimientos en esos rangos','OK','CerrarForm')
		else
		{
			fs.sort('plan_id asc asientos_cons_to_asiento_cons_cab.fecha asc asientos_cons_to_asiento_cons_cab.nro_asiento asc')
			
			fs.setSelectedIndex(1)
			var i = 1
			var cant = databaseManager.getFoundSetCount(fs)
			while (i<= cant)
			{
				var plan_ant = fs.plan_id
				var res = 1
				var saldo = saldoCta (fs.plan_id, fFechaDesde, res)
				if (res != 0)
				{
					while ((i <= cant)&&(plan_ant == fs.plan_id))
					{
						fs.setSelectedIndex(i)
						saldo += fs.importe_signo
						if (saldo <0)
							var fila = new Array(fs.plan_id,fs.asientos_cons_to_asiento_cons_cab.tipo_id,fs.asientos_cons_to_asiento_cons_cab.fecha,fs.asientos_cons_to_asiento_cons_cab.nro_asiento,fs.concepto,fs.importe_debe,fs.importe_haber,null,saldo)
						else
							var fila = new Array(fs.plan_id,fs.asientos_cons_to_asiento_cons_cab.tipo_id,fs.asientos_cons_to_asiento_cons_cab.fecha,fs.asientos_cons_to_asiento_cons_cab.nro_asiento,fs.concepto,fs.importe_debe,fs.importe_haber,saldo,null)
						ds.addRow(fila)
						i++
					}
				}
				else
				{
					globals.gDialog('Error','No hay saldo para algunas cuentas','OK','CerrarForm')
					return 0
				}
					
			}
			var data = ds.createDataSource('mayor_cons',tipos)
			var frm = solutionModel.newForm( 'mayor_cons_2',  data,  null, false,  640, 640)
			frm.view = JSForm.LOCKED_TABLE_VIEW
			
			for (var i = 1; i<=ds.getMaxColumnIndex(); i++)
			{
				var f = frm.newField(ds.getColumnName(i),JSField.TEXT_FIELD, 0+100*i, 41, 100, 20)
				f.titleText = ds.getColumnName(i)
			}
			frm.newTitleHeaderPart(40)
			
			var df1 = utils.dateFormat(fFechaDesde, 'dd-MM-yyyy')
			var df2 = utils.dateFormat(fFechaHasta, 'dd-MM-yyyy')			
			
			var titulo = 'Mayor Consolidados Fecha: ' + df1 + ' - ' + df2 + ' Cuenta:' 
			var lbl = frm.newLabel(titulo,100,0,500,30)
			lbl.fontType = 'Tahoma,bold,18'
			
			application.showFormInDialog(forms.mayor_cons_2,null,null,null,null,'Mayor Asientos Consolidados',true,false,'mayor_cons',false)
		}
	}
	else
		globals.gDialog('Error','Por favor complete las 2 fechas','OK','CerrarForm')
}

/**
 * @properties={typeid:24,uuid:"18BB6088-601A-4F62-AA23-6D27AB6B9E2E"}
 */
function saldoCta (plan, fecha,res)
{
	var saldo = 0
	var mes = (fecha.getMonth()+2 )%12
	
	if (mes == 0)
		mes = 12
	var año = fecha.getFullYear()
	
	var fs = databaseManager.getFoundSet('infocom','rel_asiento_ejer_mes')
	fs.loadAllRecords()
	
	fs.find()
	fs.plan_id = plan
	fs.año = '<' + año
	
	fs.newRecord()
	
	fs.plan_id = plan
	fs.año = año
	fs.mes = '<' + mes
	
	var cant = fs.search()
	if (cant == 0)
		res = 0
	else
	{
		var tot = databaseManager.getFoundSetCount(fs)
		for(var i=1; i<= tot ; i++)
		{
			fs.setSelectedIndex(i)
			saldo += fs.saldo
		}
		var d1 = new Date(1,mes-1,año)
		d1.setHours(00);
		d1.setMinutes(00);
		d1.setSeconds(00);
		var df1 = utils.dateFormat(d1, 'dd-MM-yyyy hh:mm:ss')
		
		var d2 = new Date(fecha.getDate()-1,mes-1,año)
		d2.setUTCHours(23);
		d2.setMinutes(59);
		d2.setSeconds(59);
		var df2 = utils.dateFormat(d2, 'dd-MM-yyyy hh:mm:ss')
	
		var fs2 = databaseManager.getFoundSet('infocom','asientos_cons')
		fs2.loadAllRecords()
		fs2.find()
		fs2.plan_id = plan
		fs2.asientos_cons_to_asiento_cons_cab.fecha = df1 + '...' + df2 + '|dd-MM-yyyy hh:mm:ss'
		cant = fs2.search()
		if (cant > 0)
		{
			var tot = databaseManager.getFoundSetCount(fs2)
			for(var i=1; i<= tot ; i++)
			{
				fs2.setSelectedIndex(i)
				saldo+= fs2.importe_signo
			}
		}
	}
	return saldo
}
